// 模拟用户数据存储
const users = [
  {
    id: 1,
    phone: '13800138000',
    name: '张三',
    points: 1500,
    createdAt: '2023-01-15'
  }
];

// 用户登录
const login = (req, res) => {
  try {
    const { phone, verificationCode } = req.body;
    
    // 验证参数
    if (!phone || !verificationCode) {
      return res.status(400).json({
        message: '手机号和验证码不能为空',
        code: 400
      });
    }
    
    // 验证手机号格式
    const phoneRegex = /^1[3-9]\d{9}$/;
    if (!phoneRegex.test(phone)) {
      return res.status(400).json({
        message: '手机号格式不正确',
        code: 400
      });
    }
    
    // 验证验证码（模拟）
    if (verificationCode !== '123456') {
      return res.status(400).json({
        message: '验证码错误',
        code: 400
      });
    }
    
    // 查找或创建用户
    let user = users.find(u => u.phone === phone);
    if (!user) {
      user = {
        id: users.length + 1,
        phone,
        name: `用户${phone.slice(-4)}`,
        points: 0,
        createdAt: new Date().toISOString().split('T')[0]
      };
      users.push(user);
    }
    
    res.json({
      message: '登录成功',
      code: 200,
      data: {
        user,
        token: 'fake-jwt-token-' + user.id
      }
    });
  } catch (error) {
    console.error('登录错误:', error);
    res.status(500).json({
      message: '服务器内部错误',
      code: 500
    });
  }
};

// 发送验证码
const sendVerificationCode = (req, res) => {
  try {
    const { phone } = req.body;
    
    // 验证参数
    if (!phone) {
      return res.status(400).json({
        message: '手机号不能为空',
        code: 400
      });
    }
    
    // 验证手机号格式
    const phoneRegex = /^1[3-9]\d{9}$/;
    if (!phoneRegex.test(phone)) {
      return res.status(400).json({
        message: '手机号格式不正确',
        code: 400
      });
    }
    
    // 模拟发送验证码（实际项目中会调用短信服务）
    console.log(`验证码 123456 已发送至手机: ${phone}`);
    
    res.json({
      message: '验证码发送成功',
      code: 200
    });
  } catch (error) {
    console.error('发送验证码错误:', error);
    res.status(500).json({
      message: '服务器内部错误',
      code: 500
    });
  }
};

// 获取用户信息
const getUser = (req, res) => {
  try {
    const { id } = req.params;
    
    const user = users.find(u => u.id == id);
    if (!user) {
      return res.status(404).json({
        message: '用户不存在',
        code: 404
      });
    }
    
    res.json({
      message: '获取用户信息成功',
      code: 200,
      data: {
        user
      }
    });
  } catch (error) {
    console.error('获取用户信息错误:', error);
    res.status(500).json({
      message: '服务器内部错误',
      code: 500
    });
  }
};

// 更新用户信息
const updateUser = (req, res) => {
  try {
    const { id } = req.params;
    const { name } = req.body;
    
    const user = users.find(u => u.id == id);
    if (!user) {
      return res.status(404).json({
        message: '用户不存在',
        code: 404
      });
    }
    
    // 更新用户信息
    if (name) {
      user.name = name;
    }
    
    res.json({
      message: '更新用户信息成功',
      code: 200,
      data: {
        user
      }
    });
  } catch (error) {
    console.error('更新用户信息错误:', error);
    res.status(500).json({
      message: '服务器内部错误',
      code: 500
    });
  }
};

module.exports = {
  login,
  sendVerificationCode,
  getUser,
  updateUser
};